package tech.xs.common.framework.domain.annotations;

import tech.xs.common.sys.domain.enums.SysDictValueTypeEnum;

import java.lang.annotation.*;

@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Dict {

    /**
     * 字典Code
     * 修饰枚举时,默认值为ClassName
     *
     * @return 编码
     */
    String code() default "";

    /**
     * 字典名称
     * 修饰枚举时,默认值为ClassName
     *
     * @return 名称
     */
    String name() default "";

    /**
     * 所属模块
     * 默认模块为当前模块
     *
     * @return 所属模块
     */
    String module() default "";

    /**
     * 字典值类型,默认int
     *
     * @return 值类型
     */
    SysDictValueTypeEnum valueType() default SysDictValueTypeEnum.INT;

    /**
     * 备注
     *
     * @return 备注
     */
    String remark() default "";

    ChildDict[] children() default {};


}
